use ringbuf::consumer::Consumer;
use ringbuf::traits::{RingBuffer, Split};

/// 第一节中，缓冲区满了，再插入会导致 panic。
/// 可以采用覆盖方式，即插入新元素时，如果缓冲区已满，则覆盖最旧的元素。
fn main() {
    let mut rb = ringbuf::HeapRb::<i32>::new(2);

    rb.push_overwrite(1);
    rb.push_overwrite(2);
    rb.push_overwrite(3);
    rb.push_overwrite(4);
    
    println!("{:?}", rb.try_pop());
    println!("{:?}", rb.try_pop());
    println!("{:?}", rb.try_pop());
    println!("{:?}", rb.try_pop());
    println!("{:?}", rb.try_pop());
    println!("{:?}", rb.try_pop());
    
    // 定义两个线程，分别向缓冲区和从缓冲区读取数据。
}